home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / Clock / Clock.jar / MyCanvas.class (.txt) < prev   
Encoding:
Java Class File  |  2002-02-07  |  5.5 KB  |  218 lines

  1. import com.siemens.mp.io.File;
  2. import javax.microedition.lcdui.Canvas;
  3. import javax.microedition.lcdui.Font;
  4. import javax.microedition.lcdui.Graphics;
  5. import javax.microedition.lcdui.Image;
  6.  
  7. class MyCanvas extends Canvas implements Runnable {
  8.    Thread game0 = null;
  9.    static byte[] sSin = new byte[]{0, 10, 21, 31, 41, 50, 59, 67, 74, 81, 87, 91, 95, 98, 99, 100};
  10.    private String header = "RPNClock by RizaPN";
  11.    private byte bRPN = 1;
  12.    // $FF: renamed from: g2 javax.microedition.lcdui.Graphics
  13.    private Graphics field_0;
  14.    static int gLT = 20;
  15.    // $FF: renamed from: wX int
  16.    private int field_1 = ((Canvas)this).getWidth();
  17.    // $FF: renamed from: wY int
  18.    private int field_2 = ((Canvas)this).getHeight();
  19.    private Image imgCanvas;
  20.    private int X_0;
  21.    private int Y_0;
  22.    private byte blS = 15;
  23.    private byte blM = 16;
  24.    private byte blH = 11;
  25.    // $FF: renamed from: ss byte
  26.    private byte field_3;
  27.    // $FF: renamed from: mm byte
  28.    private byte field_4;
  29.    // $FF: renamed from: hh byte
  30.    private byte field_5;
  31.    private byte omm;
  32.    private byte ohh;
  33.    private byte oss = -1;
  34.    private byte ossx;
  35.    private byte ossy;
  36.    private byte ommx;
  37.    private byte ommy;
  38.    private byte ohhx;
  39.    private byte ohhy;
  40.    private String cvNo = "";
  41.    private byte oldKey = 0;
  42.    private Clock midlet;
  43.    private Font font = Font.getFont(64, 1, 8);
  44.  
  45.    public MyCanvas(Clock var1) {
  46.       this.midlet = var1;
  47.       this.getCanvas("00");
  48.       this.game0 = new Thread(this);
  49.       this.game0.start();
  50.    }
  51.  
  52.    public void getCanvas(String var1) {
  53.       String var2 = "canvas" + var1 + ".png";
  54.       File var3 = new File();
  55.       int var4 = 0;
  56.       this.X_0 = 0;
  57.       this.Y_0 = 0;
  58.       if (File.exists(var2) >= 0) {
  59.          try {
  60.             int var5 = var3.open(var2);
  61.             var4 = var3.length(var5);
  62.             byte[] var6 = new byte[var4];
  63.             var3.read(var5, var6, 0, var6.length);
  64.             var3.close(var5);
  65.             this.imgCanvas = Image.createImage(var6, 0, var4);
  66.             this.X_0 = var6[var4 - 2];
  67.             this.Y_0 = var6[var4 - 1];
  68.          } catch (Exception var8) {
  69.          }
  70.       }
  71.  
  72.       if (var4 == 0) {
  73.          try {
  74.             this.imgCanvas = Image.createImage("canvas0.png");
  75.          } catch (Exception var7) {
  76.             this.imgCanvas = Image.createImage(this.field_1, this.field_2);
  77.          }
  78.       }
  79.  
  80.       if (this.X_0 <= this.blM || this.X_0 > this.field_1 - this.blM) {
  81.          this.X_0 = this.imgCanvas.getWidth() / 2;
  82.       }
  83.  
  84.       if (this.Y_0 <= this.blM || this.Y_0 > this.field_2 - this.blM) {
  85.          this.Y_0 = this.imgCanvas.getHeight() / 2;
  86.       }
  87.  
  88.       if (this.X_0 <= this.blM) {
  89.          this.X_0 = this.blM;
  90.       }
  91.  
  92.       if (this.Y_0 <= this.blM) {
  93.          this.Y_0 = this.blM;
  94.       }
  95.  
  96.    }
  97.  
  98.    public void doClocks() {
  99.       long var1 = System.currentTimeMillis() / 1000L;
  100.       byte var3 = (byte)((int)(var1 % 60L));
  101.       if (var3 != this.oss) {
  102.          byte var4 = (byte)((int)(var1 / 60L % 60L));
  103.          byte var5 = (byte)((int)(var1 / 3600L % 12L));
  104.          if (this.oss >= 0) {
  105.             this.drawLines(this.oss, this.omm, this.ohh, 1);
  106.          }
  107.  
  108.          this.drawLines(var3, var4, var5, 0);
  109.          this.oss = var3;
  110.          this.omm = var4;
  111.          this.ohh = var5;
  112.       }
  113.    }
  114.  
  115.    public void drawLines(byte var1, byte var2, byte var3, int var4) {
  116.       byte var5 = (byte)(5 * var3 + var2 / 12);
  117.       byte var6 = (byte)((var2 + 54) % 60);
  118.       byte var7 = (byte)((var2 + 6) % 60);
  119.       byte var8 = (byte)((var5 + 54) % 60);
  120.       byte var9 = (byte)((var5 + 6) % 60);
  121.       byte[] var10 = this.getSin(var2, (byte)3);
  122.       byte[] var11 = this.getSin(var5, (byte)3);
  123.       byte[] var12 = this.getSin(var6, (byte)3);
  124.       byte[] var13 = this.getSin(var8, (byte)3);
  125.       byte[] var14 = this.getSin(var7, (byte)3);
  126.       byte[] var15 = this.getSin(var9, (byte)3);
  127.       byte[] var16 = this.getSin(var1, this.blS);
  128.       byte[] var17 = this.getSin(var2, this.blM);
  129.       byte[] var18 = this.getSin(var5, this.blH);
  130.       if (var4 == 0) {
  131.          this.field_0.setColor(0, 0, 0);
  132.       } else {
  133.          this.field_0.setColor(255, 255, 255);
  134.       }
  135.  
  136.       this.field_0.drawLine(this.X_0 - var11[0], this.Y_0 - var11[1], this.X_0 - var11[0] + var13[0], this.Y_0 - var11[1] + var13[1]);
  137.       this.field_0.drawLine(this.X_0 - var11[0] + var13[0], this.Y_0 - var11[1] + var13[1], this.X_0 + var18[0], this.Y_0 + var18[1]);
  138.       this.field_0.drawLine(this.X_0 - var11[0], this.Y_0 - var11[1], this.X_0 - var11[0] + var15[0], this.Y_0 - var11[1] + var15[1]);
  139.       this.field_0.drawLine(this.X_0 - var11[0] + var15[0], this.Y_0 - var11[1] + var15[1], this.X_0 + var18[0], this.Y_0 + var18[1]);
  140.       this.field_0.drawLine(this.X_0 - var10[0], this.Y_0 - var10[1], this.X_0 - var10[0] + var12[0], this.Y_0 - var10[1] + var12[1]);
  141.       this.field_0.drawLine(this.X_0 - var10[0] + var12[0], this.Y_0 - var10[1] + var12[1], this.X_0 + var17[0], this.Y_0 + var17[1]);
  142.       this.field_0.drawLine(this.X_0 - var10[0], this.Y_0 - var10[1], this.X_0 - var10[0] + var14[0], this.Y_0 - var10[1] + var14[1]);
  143.       this.field_0.drawLine(this.X_0 - var10[0] + var14[0], this.Y_0 - var10[1] + var14[1], this.X_0 + var17[0], this.Y_0 + var17[1]);
  144.       this.field_0.drawLine(this.X_0, this.Y_0, this.X_0 + var16[0], this.Y_0 + var16[1]);
  145.    }
  146.  
  147.    public byte[] getSin(byte var1, byte var2) {
  148.       byte[] var3 = new byte[]{0, 0};
  149.       byte var4;
  150.       byte var5;
  151.       if (var1 <= 15) {
  152.          var4 = sSin[var1];
  153.          var5 = (byte)(-sSin[15 - var1]);
  154.       } else if (var1 <= 30) {
  155.          var4 = sSin[30 - var1];
  156.          var5 = sSin[var1 - 15];
  157.       } else if (var1 <= 45) {
  158.          var4 = (byte)(-sSin[var1 - 30]);
  159.          var5 = sSin[45 - var1];
  160.       } else {
  161.          var4 = (byte)(-sSin[60 - var1]);
  162.          var5 = (byte)(-sSin[var1 - 45]);
  163.       }
  164.  
  165.       var3[0] = (byte)(var2 * var4 / 100);
  166.       var3[1] = (byte)(var2 * var5 / 100);
  167.       return var3;
  168.    }
  169.  
  170.    public void run() {
  171.       while(true) {
  172.          try {
  173.             Thread.sleep(100L);
  174.          } catch (InterruptedException var2) {
  175.          }
  176.  
  177.          this.doClocks();
  178.       }
  179.    }
  180.  
  181.    public void paint(Graphics var1) {
  182.       this.field_0 = var1;
  183.       this.field_0.setColor(255, 255, 255);
  184.       this.field_0.fillRect(0, 0, this.field_1, this.field_2);
  185.       var1.drawImage(this.imgCanvas, 0, 0, gLT);
  186.       this.doClocks();
  187.       if (this.bRPN == 1) {
  188.          var1.setColor(0, 0, 0);
  189.          var1.setFont(this.font);
  190.          var1.drawString(this.header, 0, this.field_2 - 9, gLT);
  191.       }
  192.  
  193.    }
  194.  
  195.    public void keyPressed(int var1) {
  196.       if (var1 < 0) {
  197.          switch (var1) {
  198.             case -12:
  199.                this.midlet.exitMIDlet();
  200.                break;
  201.             case -11:
  202.                this.bRPN = (byte)(1 - this.bRPN);
  203.                ((Canvas)this).repaint();
  204.          }
  205.  
  206.       } else {
  207.          int var2 = var1 - 48;
  208.          if (this.cvNo == "") {
  209.             this.cvNo = "" + var2;
  210.          } else {
  211.             this.getCanvas(this.cvNo + var2);
  212.             ((Canvas)this).repaint();
  213.             this.cvNo = "";
  214.          }
  215.       }
  216.    }
  217. }
  218.